require.config({
    paths:{
        jq:"../libs/jquery.2.2.4",
        getJson:"../public/getJson",
        render:"../modules-cart/render",
        setLocal:"../modules-cart/setLocal",
        allNum:"../modules-cart/allNum",
        allPrice:"../modules-cart/allPrice",
        allFlag:"../modules-cart/allFlag"
    }
})
        allPrice:"../modules-cart/allPrice"
require(["jq","getJson","render","setLocal","allNum","allPrice","allFlag"],function(_,gj,r,sl,allNum,allPrice,allFlag){
    // console.log(gj);
    // 请求本地数据并解析
    let localData=localStorage.getItem("goodsMsg") ? JSON.parse(localStorage.getItem("goodsMsg")) : []
    
    $(".allNum").html(allNum(localData))
    $(".allPrice").html(allPrice(localData))

    $("#allFlag")[0].checked=allFlag(localData)
    // 请求商品数据

    gj({
        url:"../data/data.json"
    }).then((res)=>{
        // console.log(JSON.parse(res));
        // 解析商品数据
        res=JSON.parse(res)
        
        // 调用渲染页面功能
        r(res,localData,$("tbody"));
    })

    // 事件委托绑定修改数量事件
    $("tbody").on("input",".setNum",function(){
        let id=$(this).parent().parent().attr("index")
        // console.log(id,$(this).val());
        sl(localData,id,(i)=>{
            localData[i].num=$(this).val()
        })
        $(".allNum").html(allNum(localData))
        $(".allPrice").html(allPrice(localData))

    })

    //事件委托绑定删除事件
    $("tbody").on("click",".del",function(){
        let id=$(this).parent().attr("index")
        $(this).parent().remove()
        sl(localData,id,(i)=>{
            localData.splice(i,1)
        })
        $(".allNum").html(allNum(localData))
        $(".allPrice").html(allPrice(localData))

    })
    //事件委托绑定修改选中事件
    $("tbody").on("input",".check",function(){
        let id=$(this).parent().parent().attr("index")
        // console.log(id,this.checked);
        sl(localData,id,(i)=>{
            localData[i].flag=Number(this.checked)
        })
        $(".allNum").html(allNum(localData))
        $(".allPrice").html(allPrice(localData))
// console.log($(".allPrice"));
        $("#allFlag")[0].checked=allFlag(localData)

    })
    $("#allFlag").on("input",function(){
        // console.log(this.checked);
        localData.forEach(val => {
            val.flag=Number(this.checked)
        });
        for(let i=0;i<$(".check").length;i++){
            $(".check")[i].checked=this.checked
        }
        localStorage.setItem("goodsMsg",JSON.stringify(localData))
    })
})
    


